#!/bin/bash
#脚本功能：性能看护第二步，近七天tpmC日志整理脚本

#输出文件，需要跟绘图端文件名保持一致
ofile=2P_ARM_email.log
#日志处理过程文档
#1、用于处理重复测试读取信息
#2、对7天日志进行编号，用于python绘图
tmp_ofile=2P_ARM_email1.log
#用于转换查询到的月份字符串与数字之间的转换
date_m=$(date | awk '{print $2}')
#脚本所在路径
path=$(dirname "$0")
function translate_mounth () {
        case $date_m in
            Jan) date_m=1
            ;;
            Feb) date_m=2
            ;;
            Mar) date_m=3
            ;;
            Apr) date_m=4
            ;;
            May) date_m=5
            ;;
            Jun) date_m=6
            ;;
            Jul) date_m=7
            ;;
            Aug) date_m=8
            ;;
            Sep) date_m=9
            ;;
            Oct) date_m=10
            ;;
            Nov) date_m=11
            ;;
            Dec) date_m=12
            ;;
            *) echo "An error mounth"
        esac
}
function formatLog () {
        #从日志中读取tpmC值
        ifile=$(date +%Y-%m-%d)
        echo "$ofile"
        temp_log=$(ls $path/tpcc_run* | grep $ifile | tail -1)
        echo "$temp_log"
        tpmc=$(cat $temp_log | grep NewOrders | awk '{printf "%d\n" ,$11}' | tail -1)

        #获取当前日期
        translate_mounth
        #用于转换查询到的日期字符串与数字之间的转换
        date_d=$(date | awk '{print $3}')

        #当天执行结果有误，结果赋值为0
        echo "$tpmc"
        if [ $tpmc -gt 0 ] ;then
            echo "successfully run benchmarksql"
            echo "$tpmc"
        else
            echo "false run benchmarksql"
            tpmc=0
            echo "$tpmc"
        fi

        #当天是否已有数据记录判断
        grep "$date_m $date_d " $path/$tmp_ofile
        if [ $? -ne 0 ] ;then
            echo "not found day info"
            echo "$date_m $date_d $tpmc" >> $path/$tmp_ofile
            #删除最前的数据，只保留最后7条数据
            sed -i '1d' $path/$tmp_ofile

            #对采集到的7天数据记录进行编码，便于绘图
            sed '=' $path/$tmp_ofile | sed 'N;s/\n/ /' > $path/$ofile
        else
            echo "find key"
            #替换当天已有数据
            sed -i "/$date_m $date_d /c $date_m $date_d $tpmc"  $path/$tmp_ofile
            sed '=' $path/$tmp_ofile | sed 'N;s/\n/ /' > $path/$ofile
        fi
}
formatLog
